无论您的公司有多大或做什么,在为所有应用程序选择 Web 服务时,安全性都是首要考虑因素。这是一篇系列文章中的第一篇,介绍了在实施 Web 服务时确定安全级别和要求的 10 个最重要的因素。
安全要求:在深入探讨决定安全要求的 10 个最关键因素之前,让我们简要讨论一下 Web 服务安全要求。关键的 Web 服务安全要求是身份验证、授权、数据保护和不可否认性。
身份:验证 身份 验证确保使用 Web 服务所涉及的每个实体——请求者、提供者和代理(如果有的话)——都是它实际声称的。身份验证涉及接受来自实体的凭据并根据授权对其进行验证。
授权:授权确定服务提供者是否已将 Web 服务的访问权限授予请求者。基本上,授权确认服务请求者的凭据。它确定服务请求者是否有权执行操作,范围可以从调用 Web 服务到执行其功能的某个部分。
数据保护:数据保护确保 Web 服务请求和响应在途中未被篡改。它需要保护数据完整性和隐私。值得一提的是,数据保护并不能保证消息发送者的身份。
现在我们已经了解了 Web 服务安全的构成要素,我们将研究影响 Web 服务实现的十大安全因素。
前 10 项决定因素
决定使用 Web 服务的安全要求的前 10 项基本因素如下:
1.Web 服务是用于 EAI 还是 B2Bi?
Web 服务可用于两个不同的领域——企业应用程序集成 (EAI) 和企业对企业集成 (B2Bi)。EAI 域的安全要求是 B2Bi 的一个子集,因为在 Intranet 中控制、管理、查找、执行和维护 Web 服务比在 Internet 上跨越公司防火墙使用它们要容易得多。虽然 EAI 的 Web 服务应该有一个级别的身份验证并且很少使用加密,但 B2Bi 的 Web 服务可能涉及多个级别的身份验证并且应该始终使用加密。此外,在 B2Bi 域的情况下,与 Web 服务请求和响应对应的消息可能需要使用以下一种或多种加密:、数字签名和安全套接字层 (SSL)。但是,对于在企业网络中用于 EAI 项目的 Web 服务,应尽可能避免使用 SSL。最后,不可否认性对于 B2Bi 域中的 Web 服务很有用,因为它可以防止恶意发件人后来否认已创建并发送了特定消息。
2.Web 服务的目的是什么?
如果 Web 服务只公开面向公共信息的业务流程或数据,例如今天城市的天气或公司的股票报价,则安全要求比公开私人业务信息的 Web 服务要宽松。
3.谁是 Web 服务的订户?
了解 Web 服务的订阅者是谁对于确定 Web 服务的授权和身份验证特性很重要。
4.是否可以通过 Internet 调用该服务?
Web 服务是否仅限于受信任的贸易伙伴,或者任何公司都可以通过 Internet 调用 Web 服务?除了数据保护和不可否认特性之外,这对于 Web 服务的授权和身份验证特性至关重要。
5.底层应用程序的安全性如何?
Web 服务为底层应用程序提供什么级别的访问?访问是否应该基于授权和权利?对底层应用的访问越多,对授权和认证安全的要求就越高。
6.Web 服务是面向事务的吗?
如果事务分布在多个实体中,安全威胁会更高。
7.使用什么协议?
什么网络协议处理服务请求者和提供者之间的身份验证和数据传输?了解是否需要数据安全非常重要,因为任何人都可以嗅探 Web 服务请求和响应,这些请求和响应将作为纯 XML 文档在网络上传输。如果是 HTTPS,则不需要任何额外的加密/解密算法,因为 HTTPS 提供了它。
8.是否需要验证发件人/收件人?
是否需要保证 Web 服务请求和响应消息的发送者与消息的创建者相同?出于审计目的并确保发送者和创建者是同一实体可能需要此信息。如果 Web 服务用于 B2Bi,则通常需要不可否认的安全要求。
9.谁参与服务?
Web 服务的使用涉及多少不同的实体;即,Web 服务是否具有实体链接功能?如果有多个实体,则需要更高的安全功能。
10.是否使用了组件链?
Web 服务的实现代码中是否存在应用程序链接和组件链接功能?如果应用程序链跨越公司防火墙,安全要求就会变得更加严格。
值得一提的是,现阶段Web服务的安全技术标准,如行业标准和Web服务中使用数字签名的支持等,仍在定义和制定中。因此,请继续关注本系列后续文章的最新动态。
在实施 Web 服务之前覆盖您的所有基础
从长远来看,安全的互操作性是 Web 服务成功的关键。警惕 Web 服务中潜在的安全漏洞,因为它们容易受到各种安全威胁的攻击,例如拒绝服务和欺骗。在上述问题得到明确回答并考虑到公司内部的安全策略和现有解决方案之前,不应开始实施任何 Web 服务技术。